//
//  TFGuideView.h
//  TimeFaceDemoProject
//
//  Created by TFAppleWork-Summer on 2017/2/16.
//  Copyright © 2017年 Summer. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TFGuideSubViewModel.h"
#import "TFGuideModel.h"

@class TFGuideView;

/**
 引导页代理
 */
@protocol TFGuideViewDelegate <NSObject>

/**
 点击了引导页中的某个子view

 @param guideView 引导页view
 @param index 索引，根据你添加的顺序从0开始，若为-1，则是点击之外的区域
 */
- (void)guideView:(nonnull TFGuideView *)guideView didClickSubViewAtIndex:(NSInteger)index;

@end

/**
 引导页view
 */
@interface TFGuideView : UIView

@property (nonatomic, strong, nonnull) TFGuideModel *model;

/**
 背景色
 */
@property (nonatomic, strong, nonnull) UIColor *contentBackColor;

/**
 代理
 */
@property (nonatomic, weak, nullable) id<TFGuideViewDelegate> delegate;

/**
 添加透明圆形

 @param center 中心点
 @param radius 半径
 @return 索引
 */
- (NSInteger)addTransparentWithCircleCenter:(CGPoint)center radius:(CGFloat)radius;

/**
 添加透明矩形

 @param rect 大小位置
 @return 索引
 */
- (NSInteger)addTransparentWithRect:(CGRect)rect;

/**
 添加透明圆角矩形

 @param rect 大小位置
 @param cornerRadius 圆角
 @return 索引
 */
- (NSInteger)addTransparentWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius;

/**
 添加透明路径

 @param path 路径
 @return 索引
 */
- (NSInteger)addTransparentWithPath:(nonnull UIBezierPath *)path;

/**
 添加自定义view和其透明路径

 @param view 自定义view
 @param transparentPath 透明效果路径，若为nil，则没有透明效果。
 @return 索引
 */
- (NSInteger)addCustomViewWithView:(nullable UIView *)view transparentPath:(nullable UIBezierPath *)transparentPath;

/**
 获取subview的模型

 @param index 索引
 @return TFGuideSubViewModel
 */
- (nonnull TFGuideSubViewModel *)getSubViewModelWithIndex:(NSInteger)index;

/**
 清空子所有子view包括透明
 */
- (void)clearSubViews;

@end
